M291 S5 J1 F350 R"XY Movement test" P"Set the temperature for the Test"
var temp = input


M564 H0
G10 P0 S{var.temp} R{var.temp}
G10 P1 S{var.temp} R{var.temp}
G10 P2 S{var.temp} R{var.temp}
G10 P3 S{var.temp} R{var.temp}

M140 S150 R150
M141 S100 R100

; Homing XYU axis if they are not homed
if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed || !move.axes[3].homed
  M98 P"homeall.g"

;Wait for temp
M116 H0 S5
M116 H1 S5

M570 H0 P1 T10 R1                                            ; configure heater fault detection
M570 H1 P1 T10 R1                                            ; configure heater fault detection


; Fans
M106 P1 S0.5
M106 P3 S0.5

var XY_Mov_Start_Time = state.time

while sensors.analog[3].lastReading <= 80
  if sensors.endstops[0].triggered || sensors.endstops[3].triggered
    break
  ;Corners Left Tool
  T0
  G1 X-200 U200 Y160 F24000
  G1 X-200 Y-175
  G1 X144  Y-175
  G1 X144  Y160
  G1 X-200 Y160
  ;Diagonal 1
  G1 X144 Y-175
  G1 X-200 Y160 
  if sensors.endstops[0].triggered || sensors.endstops[3].triggered
    break
  ;Diagonal 2
  G1 X144  Y160
  G1 X-200 Y-175
  G1 X144  Y160
  G1 X-200 Y160
  ;Corners Right Tool
  G1 X-200 U200 Y160
  G1 U200 Y-175
  G1 U-144  Y-175
  G1 U-144  Y160
  G1 U200 Y160
  ;Diagonal 1
  G1 U-144 Y-175
  G1 U200 Y160
  ;Diagonal 2
  G1 U-144  Y160
  G1 U200 Y-175
  G1 U-144  Y160
  G1 U200 Y160
  if sensors.endstops[0].triggered || sensors.endstops[3].triggered
    break
  ;Mirror Mode Corners
  T3
  G1 X-200 Y160 F18000
  G1 X-200 Y-175
  G1 X-25  Y-175
  G1 X-25  Y160
  G1 X-200 Y160
  ;Mirror Mode ZigZag
  G1 X-25  Y103
  G1 X-200 Y65
  G1 X-25  Y0
  G1 X-200 Y-65
  G1 X-25 Y-118
  G1 X-200 Y-175
  G1 X-25  Y-175
  G1 X-200 Y-63
  G1 X-25  Y48
  G1 X-200 Y160
  if sensors.endstops[0].triggered || sensors.endstops[3].triggered
    break
  ;Duplicate Mode ZigZag
  T2
  G1 X97.5    Y48
  G1 X-102.5 Y-63
  G1 X2.5  Y-175
  G1 X2.5  Y160


var XY_Mov_Time = state.time - var.XY_Mov_Start_Time
echo "Heating took " ^ {var.XY_Mov_Time/60} ^ " minutes"

M570 H0 P30 T50 R10                                              ; configure heater fault detection
M570 H1 P30 T50 R10                                              ; configure heater fault detection

G10 P0 S0 R0
G10 P1 S0 R0
G10 P2 S0 R0
G10 P3 S0 R0
M140 S0 R0
M141 S0 R0

G90
G1 F18000 Y-999 X-50 U50
G1 Z400

M98 P"0:/sys/end.g"
M564 H1